package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import java.util.List;

import com.iwhalecloud.citybrain.flow.platform.manager.common.client.HttpFlowQueryInfoDto;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.FlowExecutionQueryInfo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.task.FlowExecutionQueryVo;

/**
 * @author lilh
 * @date 2019-01-24 15:13
 */
public interface FlowExecutionQueryService {

    /**
     * 待办列表
     */
    List<FlowExecutionQueryInfo> todoTasks(FlowExecutionQueryVo flowExecutionQueryVo);

    List<HttpFlowQueryInfoDto>  todoTasksByModelKey(HttpFlowQueryInfoDto httpFlowQueryInfoDto);

    /**
     * 已处理列表
     */
    List<FlowExecutionQueryInfo> processedProcessInstance(FlowExecutionQueryVo flowExecutionQueryVo);

    /**
     * 我的申请
     */
    List<FlowExecutionQueryInfo> launchedProcessInstance(FlowExecutionQueryVo flowExecutionQueryVo);

    /**
     * 待办列表
     */
    List<FlowExecutionQueryInfo> getProcessInstanceList(FlowExecutionQueryVo flowExecutionQueryVo);

    /**
     * 待办列表
     */
    List<FlowExecutionQueryInfo> getSingleProcessInstanceList(FlowExecutionQueryVo flowExecutionQueryVo);

    /**
     * 待办个数统计
     * @return
     */
    int countTodo();

    /**
     * 今日处理个数统计
     * @return
     */
    int countProcessed();

    /**
     * 我的申请统计
     * @return
     */
    int countLaunchedProcess();
}
